<?php

/**
 * Модель работы модуля WYSYWIG
 */
class EditorModel extends DbModel {

    protected $_name = 'page_editor';

    /**
     * Получение содержимого секции
     *
     * @param int $id #ID секции
     * @return EditorObject
     */
    public function getContent($id = 0) {
        $select = $this->select();
        if ($id > 0) {
            $select->where('sid = ?', $id);
            $res = $this->fetchRow($select);
        }
        return $res;
    }

    /**
     * Добавление содержимого секции
     *
     * @param array $data Содержимое
     * @return int #ID записи
     */
    public function addContent($data) {
        $this->insert($data);
        $id = $this->_db->lastInsertId();
        return $id;
    }

    /**
     * Обновление содержимого
     *
     * @param array $data Содержимое секции
     * @param int $id #ID секции
     * @return int #ID секции
     */
    public function updateContent($data, $id) {
        if ($id > 0) {
            $this->update($data, "sid = " . $id);
            $this->removeCache($id);
            return $id;
        }
    }

    /**
     * Удаление секции с содержимым
     *
     * @param int $sid #ID секции
     */
    public function deleteSection($sid) {
        $id = $sid;
        if ($id > 0) {
            $this->delete("sid = " . $id);
            $this->removeCache($id);
        }
    }

    /**
     * Получение идентификатора кэша
     * 
     * @param array $request 
     */
    public function getCacheIdentifier($request) {
        $sid = $request->getParam('sid');
        return 'sid' . $sid;
    }

    /**
     * Очистка кэша
     *
     * @param int $sid #ID секции
     */
    public function removeCache($sid) {
        $cache = Zend_Registry::get('Zend_Cache', $cache);
        $cache->remove($sid . 'sid' . $sid);
    }

}